package org.demo.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 
 * @author  
 * @date    2010-9-13
 * @file    org.demo.util.DateTools.java
 */
public class DateTools {

	/**
	 * @param args
	 * @throws ParseException 
	 */
	public static void main(String[] args) throws ParseException {
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date start = format.parse("1969-10-22 12:12:12");
		Date end = format.parse("1970-5-2 10:10:10");
		long days = subtract(start, end);
		System.out.println(days);
	}
	/**
	 * 计算日期差
	 * @param start
	 * @param end
	 * @return
	 */
	public static long subtract(Date start,Date end){
		// 先个自计算出距离 1970-1-1 的日期差，然后相减
		long one_day = 24*60*60*1000;
		long stime = start.getTime();
		long etime = end.getTime();
		long sdays = stime/one_day;
		long edays = etime/one_day;
		// 若 start < 1970-1-1,则日期差了一天,需要修正
		if (stime < 0){
			sdays--;
		}
		// 若 end < 1970-1-1,则日期差了一天,需要修正
		if (etime < 0){
			edays--;
		}
		return edays - sdays;
	}
	/**
	 * 获取当前系统时间
	 * @return
	 */
	public String getCurrentTime(){
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
        return sdf.format(new Date());
	}
}
